The Internet is fast becoming the most prevalent tool through which goods and services are marketed to customers. The Internet, also referred to as an “internetwork”, is a set of computer networks, possibly dissimilar, joined together by means of gateways that handle data transfer and the conversion of messages from the sending network to the protocols used by the receiving network (with packets if necessary). When capitalized, the term “Internet” refers to the collection of networks and gateways that use the TCP/IP suite of protocols.
The Internet has become a cultural fixture as a source of both information and entertainment. Many businesses are creating Internet sites as an integral part of their marketing efforts, informing consumers of the products or services offered by the business or providing other information seeking to engender brand loyalty. Many federal, state, and local government agencies are also employing Internet sites for informational purposes, particularly agencies which must interact with virtually all segments of society such as the Internal Revenue Service and secretaries of state. Providing informational guides and/or searchable databases of online public records may reduce operating costs. Further, the Internet is becoming increasingly popular as a medium for commercial transactions.
Currently, the most commonly employed method of transferring data over the Internet is to employ the World Wide Web environment, also called simply “the Web”. Other Internet resources exist for transferring information, such as File Transfer Protocol (FTP) and Gopher, but have not achieved the popularity of the Web. In the Web environment, servers and clients effect data transaction using the Hypertext Transfer Protocol (HTTP), a known protocol for handling the transfer of various data files (e.g., text, still graphic images, audio, motion video, etc.). The information in various data files is formatted for presentation to a user by a standard page description language, the Hypertext Markup Language (HTML). In addition to basic presentation formatting, HTML allows developers to specify “links” to other Web resources identified by a Uniform Resource Locator (URL). A URL is a special syntax identifier defining a communications path to specific information.
Each logical block of information accessible to a client, called a “page” or a “Web page”, is identified by a URL. The URL provides a universal, consistent method for finding and accessing this information, not necessarily for the user, but mostly for the user's Web “browser.” A browser is a program capable of submitting a request for information identified by an identifier, such as, for example, a Universal Resource Locator (URL). A user may enter a domain name through a Graphical User Interface (GUI) for the browser to access a source of content. The domain name is automatically converted to the Internet Protocol (IP) address by a Domain Name System (DNS), which is a service that translates the symbolic name entered by the user into an IP address by looking up the domain name in a database.
The Internet also is widely used to transfer applications to users using browsers. With respect to commerce on the Web, individual consumers and business use the Web to purchase various goods and services. In offering goods and services, some companies offer goods and services solely on the Web while others use the Web to extend their reach.
In marketing goods and services, often companies require that the users enter personal information for their records and to effectuate a sale of goods or services. Such information is usually entered via a Web page having fields denoted by HTML tags, such as the <FORM> tag.
FIG. 1 is an example Web page having fields in which a user may enter personal information for use by the Web server. As shown in FIG. 1, the Web page has fields for entry of the user's name and address. Once the user enters the information in the required fields, the information is sent to the Web page server for processing. The information transmission to the Web page server is accomplished when the user sends a “transmit” command via the user's Web browser. This may be done, for example, by selecting a virtual “enter” button or “next” button on the Web page display.
The ability of Web servers to maintain state information for a Web page is very limited in that state information typically can only be passed from one Web page to the next immediate Web page. Maintaining state information means remembering information while the user moves from Web page to Web page within a Web site. If a user moves beyond the next Web page to another Web page in the Web site, the state information for the first Web page will be lost. Thus, the user is required to reenter all of the information previously entered.
There are some possible ways of maintaining state information for longer periods of time. The state information may be stored as cookies on the user's personal computer. Cookies are data created by a Web server that provides a way for a Web site to keep track of a user's patterns and preferences and, with the cooperation of a Web browser, to store them on the user's own hard disk.
The cookies contain a range of URLs (addresses) for which they are valid. When the browser encounters those URLs again, it sends those specific cookies to the Web server. For example, if a user's ID were stored as a cookie, it would save that person from typing in the same information all over again when accessing that service for the second and subsequent time.
Cookies, however, have the drawbacks that cookies are only valid for certain dates, i.e. cookies expire. If a cookie expires or is otherwise disabled, such as through a setting in the Web browser, the information stored in the cookie cannot be used.
In addition, cookies are limited in their size and are not valid across Web browsers. In other words, a cookie that is created using Netscape™ will not be valid for use with Microsoft Internet Explorer™. The most significant drawback is that cookies are stored in an unencrypted format. Thus, sensitive information, such as credit card numbers, social security numbers, and the like, which are typical information provided during Internet sales, would not be secure when stored in a cookie.
Another option is to encode the state information in the URL. The URL is an address that defines the route to a file on the Web or any other Internet facility. URLs are typed into the browser to access Web pages, and URLs are embedded within the pages themselves to provide the hypertext links to other pages.
For example, a URL such as “www.techweb.com/encyclopedia/defineterm?term=URL” may be utilized to temporarily store Web page state information. The term “defineterm?term=” provides the attribute that is stored in the URL with “URL” being the user entered state attribute value. The drawback to using this approach is that the state information is maintained only temporarily and is lost when the user moves to another Web page.
A still further option is to store the Web page state information on the Web server. This requires that each Web server provide sufficient storage capacity to store Web page state information for each user of each Web page. Additionally, it requires the Web server to have a Common Gateway Interface (CGI) script for interfacing with a Web server database. A CGI is a small program written in a script language, such as Perl, that functions as the glue between HTML Web pages and other programs on the Web server. For example, a CGI script allows search data entered on a Web page to be sent to a database management system (DBMS). It also formats the results of that search onto an HTML Web page, which is sent back to the user.
Thus, storing the Web page state information on the Web server greatly increases the complexity, storage requirements, and ultimately the cost of a Web server. Additionally, the client applications on the user's computer cannot maintain control over the use of the Web page state information or utilize this information with other Web pages.
Therefore, it would be beneficial to have a method and apparatus for maintaining state information for Web pages that is secure and does not require a Web server for storage of the Web page state information.